class Solution {
public:
    int findJudge(int n, vector<vector<int>>& trust)
    {
        if (trust.empty() && n == 1) return 1;
        else if (trust.empty() && n > 1) return -1;
        unordered_map<int, int> t;
        unordered_map<int, int> bt;
        int ans = 0;
        for (auto e : trust)
        {
            bt[e[1]]++;
            t[e[0]]++;
            ans = bt[e[1]] > bt[ans] ? e[1] : ans;
        }
        return bt[ans] == n - 1 && t[ans] == 0 ? ans : -1;
    }
};